In many legacy telecommunications networks, circuit switching is used to establish a fixed bandwidth channel between nodes and terminals to allow users to communicate. As a method of maximizing resource efficiency, multiple data streams are commonly combined into one signal, thereby allowing the data streams to share the physical lines in the data path without interfering with one another. Various multiplexing techniques are known, such as polarization multiplexing, spatial multiplexing (MIMO), wavelength division multiplexing (WDM), frequency division multiplexing (FDM), and time division multiplexing (TDM).
With the rapid development of modern packet-switched networks, however, such circuit switched networks have gradually fallen out of favor as a preferred technology. For example, Voice-Over-Internet Protocol (VoIP) services have replaced many circuit switched services, given VoIP's flexibility, ease of implementation, and reduction in costs. Unfortunately, transitioning to IP-based services requires a service provider to incur significant expenses in expanding its infrastructure and replacing customer premise equipment.
Given the large initial investment, many service providers have been reluctant to make the transition from circuit-based services to corresponding services in packet-switched networks. To help ease the transition, various circuit emulation service (CES) standards have been developed. Such standards allow service providers to gradually make the transition to packet-switched networks, eliminating the need to replace circuit-based equipment and drop support of legacy services.
One example of such a CES standard is TDM circuit emulation service over packet switched network (CESoPSN), as described by Request for Comments (RFC) 5086, “Structure-Aware Time Division Multiplexed (TDM) Circuit Emulation Service over Packet Switched Network (CESoPSN),” published by the Internet Engineering Task Force (IETF) and incorporated herein by reference. This RFC describes a method for encapsulating structured (NxDS0) TDM signals as pseduowires over packet-switching networks (PSNs). In particular, on the ingress end of a TDM pseudowire, a node converts the TDM signals into a plurality of packets, then sends the packets across a packet-based path, or pseudowire. Upon receipt of the packets, a node on the egress end converts the packets back into TDM signals and forwards the TDM signals towards their ultimate destination.
Although CESoPSN standards offer flexibility and reduce expenses, they also introduce problems specific to packet-switched networks. Unlike circuit-based connections, packet-switched networks do not include mechanisms to ensure that nodes in the network send and receive packets at a constant rate. As a result, packet-switched networks inherently introduce a problem known as packet delay variation (PDV). PDV is particularly problematic when using the packet-switched network to emulate a TDM connection, as a multiplexed TDM signal must strictly adhere to timing requirements to ensure proper separation of the streams at the receiving node. PDV can dramatically affect the timing of the signal and, therefore, result in loss of data and affect the user's quality of experience.
The playout buffer is one solution developed to address the problem of packet delay variation when emulating circuit switched connections. A playout buffer regulates packet delay variation by temporarily storing packets, then outputting the packets at regular intervals using a play-out algorithm.
It is important that packets be played out of the playout buffer in the proper sequence, thus accurately reproducing the original circuit-switched signal. For various reasons, however, packets may be received out of sequence. Various solutions, such as RFC 5086, require inserting replacement data into the playout buffer for each skipped packet when a packet has been received out of sequence.
Such solutions, however, fail to properly handle scenarios where the sequence numbers of two consecutively received packets indicate that a number of packets have been skipped. This can happen, for example, after a line card redundancy (LCR) switch at the transmitting node, as sequence numbers assigned to packets are not typically synchronized between an active and an inactive line card of a source node. These scenarios can also occur due to, for example, an automatic protection switch (APS), a rerouting of packets in a network, or network congestion. More specifically, because the playout buffer has a finite size, inserting a dummy packet for each supposedly-skipped packet may potentially fill the playout buffer and cause it to overflow. Even if inserting dummy packets does not immediately cause an overflow, the subsequent arrival of additional packets may result in an overflow. Such an overflow may result in the loss of a portion of the received packets.
For the foregoing reasons and for further reasons that will be apparent to those of skill in the art upon reading and understanding this specification, there is a need for a playout buffer that is capable of handling sequence number errors in successively received packets.
The foregoing objects and advantages of the invention are illustrative of those that can be achieved by the various exemplary embodiments and are not intended to be exhaustive or limiting of the possible advantages which can be realized. Thus, these and other objects and advantages of the various exemplary embodiments will be apparent from the description herein or can be learned from practicing the various exemplary embodiments, both as embodied herein or as modified in view of any variation that may be apparent to those skilled in the art. Accordingly, the present invention resides in the novel methods, arrangements, combinations, and improvements herein shown and described in various exemplary embodiments.